<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    // 递归计算最大公约数

    // 27
    // 36
    // 1，3，9

    // m, n

    // r = m % n

    // r === 0 ? n : ↓↓↓

    // r = n % r

    // fn(9, 3) = 3;

    // fn(36, 27) = fn(27, 9)
    //                     9
    // fn(m, n) = fn(n, m%n)
    //                 m%n

    // function fn(m, n){
    //     var r = m % n;
    //     if(r === 0){
    //         return n;
    //     }
    //     return fn(n, r);
    // }
    // console.log(fn(9, 3));
    // console.log(fn(36, 27));
    // console.log(fn(27, 36));




    // ======

    // 奇数：计算：1/1+1/3+1/5+1/7+...+1/n
    // 偶数：计算：1/2+1/4+1/6+1/8+...+1/n

    // 奇数
    // fn(7) = 1/7 + fn(5)
                //   fn(5) = 1/5 + fn(3)
                                // fn(3) = 1/3 + fn(1)
                                                // 1
    // 偶数
    // fn(8) = 1/8 + fn(6)
                //   fn(6) = 1/6 + fn(4)
                                // fn(4) = 1/4 + fn(2)
                                                // 1/2
    // 公式
    // fn(n) = 1/n + fn(n-2)

    // 终点&起点
    // 奇数：1，返回1
    // 偶数：2，返回1/2
    
    // function fn(n){
    //     if(n === 1){
    //         return 1;
    //     }
    //     if(n === 2){
    //         return 1/2;
    //     }
    //     return 1/n + fn(n-2);
    // }
    // console.log( fn(7) );
    // console.log( fn(8) );


    // =======


    // 已知一个四位数，要求每位加5之后和10取余代替该数字，第一位和第四位交换，第二位和第三位交换，传入一个四位数，返回处理之后的数字(保持四位)

    function fn(n){
        var a = parseInt(n/1000);
        var b = parseInt(n/100)%10;
        var c = parseInt(n/10)%10;
        var d = n%10;

        a = (a + 5) % 10;
        b = (b + 5) % 10;
        c = (c + 5) % 10;
        d = (d + 5) % 10;

        return ("" + d + c + b + a);
    }

    console.log(fn(3715));
    console.log(fn(6518));
    console.log(fn(2913));






</script>
</html>